A Compiler Framework for Restructuring Data Declarations to Enhance Cache and TLB E ectiveness
نویسندگان
چکیده
It has been observed that memory access performance can be improved by restructuring data declarations, using simple transformations such as array dimension padding and inter-array padding (array alignment) to reduce the number of misses in the cache and TLB (translation lookaside bu er). These transformations can be applied to both static and dynamic array variables. In this paper, we provide a padding algorithm for selecting appropriate padding amounts, which takes into account various cache and TLB e ects collectively within a single framework. In addition to reducing the number of misses, we identify the importance of reducing the impact of cache miss jamming by spreading cache misses more uniformly across loop iterations. We translate undesirable cache and TLB behaviors into a set of constraints on padding amounts and propose a heuristic algorithm of polynomial time complexity to nd the padding amounts to satisfy these constraints. The goal of the padding algorithm is to select padding amounts so that there are no set con icts and no o set con icts in the cache and TLB, for a given loop. In practice, this algorithm can e ciently nd small padding amounts to satisfy these constraints. To appear in Proc. CASCON '94, Toronto, Canada, Oct.31 Nov.3, 1994 Email addresses: [email protected] and fchowjh | royju | muthu | vivek [email protected]
منابع مشابه
A Compiler Framework for Restructuring Data Declarations to Enhance Cache and Tlb Eeectiveness
It has been observed that memory access performance can be improved by restructuring data declarations , using simple transformations such as array dimension padding and inter-array padding (array alignment) to reduce the number of misses in the cache and TLB (translation lookaside buuer). These transformations can be applied to both static and dynamic array variables. In this paper, we provide...
متن کاملA Compiler Framework for Restructuring Data Declarations
It has been observed that memory access performance can be improved by restructuring data declarations , using simple transformations such as array dimension padding and inter-array padding (array alignment) to reduce the number of misses in the cache and TLB (translation lookaside buuer). These transformations can be applied to both static and dynamic array variables. In this paper, we provide...
متن کاملArray Restructuring for Cache Locality
Array Restructuring for Cache Locality by Shun-Tak Albert Leung Chairperson of Supervisory Committee: Professor John Zahorjan Department of Computer Science and Engineering Caches are used in almost every modern processor design to reduce the long memory access latency, which is increasingly a bottleneck to program performance. For caches to be effective, programs must exhibit good data localit...
متن کاملRestructuring Arrays for E cient Parallel Loop
In a sequential program, data are often structured in a way that is optimized for a sequential execution. However, when the program is parallelized, the data access pattern may change drastically. If the structure of the data is not changed accordingly, parallel performance will su er. In this paper, we consider this problem in the context of runtime loop parallelization [8, 9], which is a gene...
متن کاملRestructuring Arrays for E cient Parallel Loop Execution
In a sequential program, data are often structured in a way that is optimized for a sequential execution. However, when the program is parallelized, the data access pattern may change drastically. If the structure of the data is not changed accordingly, parallel performance will su er. In this paper, we consider this problem in the context of runtime loop parallelization [8, 9], which is a gene...
متن کامل